﻿using System;
using System.Data;
using System.Collections;
using System.Collections.Generic;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml;
using System.IO;

namespace Touch
{
    public enum PageType { Regular, Reccomended, Newest, Popular, Search, Free }
    /// <summary>
    /// Summary description for LocalFunctions
    /// </summary>
    public class LocalFunctions
    {
        public LocalFunctions()
        {
        }

        #region Get Data

        public List<Application> GetRecomendedApps(int iStartItem, int iNumItems, out int totalresults)
        {
            totalresults = 0;
            List<Application> lstApp = new List<Application>();

            try
            {
                totalresults = Convert.ToInt32(5);
                for (int iCounter = 0; iCounter < 5;iCounter++ )
                {
                    Application app = new Application();
                    app.id = iCounter;
                    app.name = "Bubble Bash 2";
                    app.hebrewname = "Bubble Bash 2";
                    app.name = (app.hebrewname.Length > 0) ? app.hebrewname : app.name;
                    app.icon = "http://wap.orange.co.il/MCM7portalImages//usr/share/mcm/publish/cit/6/cit_191708/cit_191708GAME_LOGO.gif";
                    app.description = "פוצץ בועות צבעוניות אשר יורדות מהתקרה במשחק שהוא פאן אמיתי לימי הקיץ";
                    app.parentid=0;
                    app.creator = string.Empty;
                    app.numberofcomments = 0;
                    app.price = "14.84";
                    app.ismonthly = 0;
                    //app.rating = Convert.ToDouble(node.SelectSingleNode("rating").InnerText);

                    lstApp.Add(app);
                }
            }
            catch { }
            return lstApp;
        }

        public List<Application> GetNewApps(int iStartItem, int iNumItems, out int totalresults)
        {
            totalresults = 0;
            List<Application> lstApp = new List<Application>();

            try
            {
                totalresults = Convert.ToInt32(10);
                for (int iCounter = 0; iCounter < 10; iCounter++)
                {
                    Application app = new Application();
                    app.id = iCounter;
                    app.name = "Fifa 11";
                    app.hebrewname = "Fifa 11";
                    app.name = (app.hebrewname.Length > 0) ? app.hebrewname : app.name;
                    app.icon = "http://wap.orange.co.il/MCM7portalImages//usr/share/mcm/mount1/189/13547/fil_5683547.gif";
                    app.description = "להיט הכדורגל הטוב בעולם עם חווית משחק מדהימה. הליגות הטובות בעולם והכל בתלת מימד מרגש";
                    app.parentid = 0;
                    app.creator = string.Empty;
                    app.numberofcomments = 0;
                    app.price = "14.84";

                    app.ismonthly = 0;
                    //app.rating = Convert.ToDouble(node.SelectSingleNode("rating").InnerText);

                    lstApp.Add(app);
                }
            }
            catch { }
            return lstApp;
        }

        public List<Application> GetPopularApps(int iStartItem, int iNumItems, out int totalresults)
        {
            totalresults = 0;
            List<Application> lstApp = new List<Application>();
            try
            {
                totalresults = Convert.ToInt32(5);
                for (int iCounter = 0; iCounter <5; iCounter++)
                {
                    Application app = new Application();
                    app.id = iCounter;
                    app.name = "קניון האפליקציות";
                    app.hebrewname = "";
                    app.name = (app.hebrewname.Length>0)?app.hebrewname:app.name;
                    app.icon = "http://wap.orange.co.il/MCM7portalImages//usr/share/mcm/mount1/197/29334/fil_5939334.gif";
                    app.description = "גישה ישירה לקניון האפליקציות באמצעות כפתור ייעודי נוח לשימוש אשר יופיע בקטגוריית היישומים שעל גבי מכשירך. בהתאם למכשירך, ניתן להעבירו למסך הראשי או ליצור לו קיצור דרך. * לאחר הורדת האפליקציה ניתן לזהותה באמצעות אייקון המציג שקית קניות כתומה * האפליקציה הינה קישור המוביל לעמוד הסלולרי של הקניון במכשירך * האפליקציה מותאמת לכל הגילאים עכשיו קל לגשת לקניון ולמצוא את האפליקציה הנחוצה לך";
                    app.shortdescription = "גישה ישירה לקניון האפליקציות באמצעות כפתור ייעודי נוח לשימוש";
                    app.shortdescription = FillShortDesciption(app.shortdescription, app.description);
                    
                    app.parentid=0;
                    app.creator = string.Empty;
                    app.numberofcomments = 0;
                    
                    app.price = "0";
                    
                    app.ismonthly = 0;
                    app.AppType = new string[0];
                    //app.rating = Convert.ToDouble(node.SelectSingleNode("rating").InnerText);

                    lstApp.Add(app);
                }
            }
            catch { }
            return lstApp;
        }

        public DataSet GetCategories()
        {
            DataSet DS = new DataSet();
            XmlDocument xDoc = new XmlDocument();
            xDoc.LoadXml("<items><items><id>34</id><name>פופולרים</name><parentid /><order>1</order><segment>0</segment><visible>1</visible><totalresults>22</totalresults></items><items><id>32</id><name>חדש</name><parentid /><order>2</order><segment>0</segment><visible>1</visible><totalresults>22</totalresults></items><items><id>33</id><name>מומלצים</name><parentid /><order>3</order><segment>0</segment><visible>1</visible><totalresults>22</totalresults></items><items><id>25</id><name>גימיקים</name><parentid /><order>4</order><segment>0</segment><visible>1</visible><totalresults>22</totalresults></items><items><id>3</id><name>ספורט</name><parentid /><order>5</order><segment>0</segment><visible>1</visible><totalresults>22</totalresults></items><items><id>19</id><name>משחקים</name><parentid /><order>6</order><segment>1</segment><visible>1</visible><totalresults>22</totalresults></items><items><id>30</id><name>טיולים</name><parentid /><order>7</order><segment>1</segment><visible>1</visible><totalresults>22</totalresults></items><items><id>5</id><name>תקשורת</name><parentid /><order>8</order><segment>1</segment><visible>1</visible><totalresults>22</totalresults></items><items><id>31</id><name>צילום</name><parentid /><order>9</order><segment>1</segment><visible>1</visible><totalresults>22</totalresults></items><items><id>27</id><name>עסקים</name><parentid /><order>10</order><segment>1</segment><visible>1</visible><totalresults>22</totalresults></items><items><id>26</id><name>ילדים</name><parentid /><order>11</order><segment>1</segment><visible>1</visible><totalresults>22</totalresults></items><items><id>28</id><name>סטודנטים</name><parentid /><order>12</order><segment>1</segment><visible>1</visible><totalresults>22</totalresults></items><items><id>4</id><name>בידור</name><parentid /><order>13</order><segment>0</segment><visible>1</visible><totalresults>22</totalresults></items><items><id>15</id><name>عربي</name><parentid /><order>14</order><segment>0</segment><visible>1</visible><totalresults>22</totalresults></items><items><id>2</id><name>שימושי</name><parentid /><order>15</order><segment>0</segment><visible>1</visible><totalresults>22</totalresults></items><items><id>12</id><name>Русский</name><parentid /><order>16</order><segment>0</segment><visible>1</visible><totalresults>22</totalresults></items><items><id>8</id><name>טיפים</name><parentid /><order>17</order><segment>0</segment><visible>1</visible><totalresults>22</totalresults></items><items><id>29</id><name>למתקדמים</name><parentid /><order>18</order><segment>1</segment><visible>1</visible><totalresults>22</totalresults></items><items><id>6</id><name>יהדות</name><parentid /><order>19</order><segment>0</segment><visible>1</visible><totalresults>22</totalresults></items><items><id>10</id><name>ישראלי</name><parentid /><order>20</order><segment>0</segment><visible>1</visible><totalresults>22</totalresults></items><items><id>9</id><name>ניווט וטיולים</name><parentid /><order>21</order><segment>0</segment><visible>1</visible><totalresults>22</totalresults></items><items><id>39</id><name>מגזינים</name><parentid /><order>22</order><segment>0</segment><visible>1</visible><totalresults>22</totalresults></items></items>");

            DS.ReadXml(new XmlNodeReader(xDoc));
            return DS;
        }

        public List<Application> GetFreeApps(int iCategoryID, int iStartItem, int iNumItems,out int totalresults)
        {
            List<Application> lstApp = new List<Application>();
            totalresults = 0;
            try
            {
                totalresults = Convert.ToInt32(5);
                for (int iCounter = 0; iCounter < 5; iCounter++)
                {
                    Application app = new Application();
                    app.id = iCounter;
                    app.name = "קניון האפליקציות";
                    app.hebrewname = "";
                    app.name = (app.hebrewname.Length > 0) ? app.hebrewname : app.name;
                    app.icon = "http://wap.orange.co.il/MCM7portalImages//usr/share/mcm/mount1/197/29334/fil_5939334.gif";
                    app.description = "גישה ישירה לקניון האפליקציות באמצעות כפתור ייעודי נוח לשימוש אשר יופיע בקטגוריית היישומים שעל גבי מכשירך. בהתאם למכשירך, ניתן להעבירו למסך הראשי או ליצור לו קיצור דרך. * לאחר הורדת האפליקציה ניתן לזהותה באמצעות אייקון המציג שקית קניות כתומה * האפליקציה הינה קישור המוביל לעמוד הסלולרי של הקניון במכשירך * האפליקציה מותאמת לכל הגילאים עכשיו קל לגשת לקניון ולמצוא את האפליקציה הנחוצה לך";
                    app.shortdescription = "גישה ישירה לקניון האפליקציות באמצעות כפתור ייעודי נוח לשימוש";
                    app.shortdescription = FillShortDesciption(app.shortdescription, app.description);

                    app.parentid = 0;
                    app.creator = string.Empty;
                    app.numberofcomments = 0;

                    app.price = "0";

                    app.ismonthly = 0;
                    app.AppType = new string[0];
                    //app.rating = Convert.ToDouble(node.SelectSingleNode("rating").InnerText);

                    lstApp.Add(app);
                }
            }
            catch { }
            return lstApp;
        }

        public List<Application> GetAppsByCatID(int iCategoryID, int iStartItem, int iNumItems,out int totalresults)
        {
            List<Application> lstApp = new List<Application>();
            totalresults = 0;
            try
            {
                totalresults = Convert.ToInt32(5);
                for (int iCounter = 0; iCounter < 5; iCounter++)
                {
                    Application app = new Application();
                    app.id = iCounter;
                    app.name = "קניון האפליקציות";
                    app.hebrewname = "";
                    app.name = (app.hebrewname.Length > 0) ? app.hebrewname : app.name;
                    app.icon = "http://wap.orange.co.il/MCM7portalImages//usr/share/mcm/mount1/197/29334/fil_5939334.gif";
                    app.description = "גישה ישירה לקניון האפליקציות באמצעות כפתור ייעודי נוח לשימוש אשר יופיע בקטגוריית היישומים שעל גבי מכשירך. בהתאם למכשירך, ניתן להעבירו למסך הראשי או ליצור לו קיצור דרך. * לאחר הורדת האפליקציה ניתן לזהותה באמצעות אייקון המציג שקית קניות כתומה * האפליקציה הינה קישור המוביל לעמוד הסלולרי של הקניון במכשירך * האפליקציה מותאמת לכל הגילאים עכשיו קל לגשת לקניון ולמצוא את האפליקציה הנחוצה לך";
                    app.shortdescription = "גישה ישירה לקניון האפליקציות באמצעות כפתור ייעודי נוח לשימוש";
                    app.shortdescription = FillShortDesciption(app.shortdescription, app.description);

                    app.parentid = 0;
                    app.creator = string.Empty;
                    app.numberofcomments = 0;

                    app.price = "0";

                    app.ismonthly = 0;
                    app.AppType = new string[0];
                    //app.rating = Convert.ToDouble(node.SelectSingleNode("rating").InnerText);

                    lstApp.Add(app);
                }
            }
            catch { }
            return lstApp;
        }

        public List<Application> SearchApps(string sSearchTerm, int iStartItem, int iNumItems, out int totalresults)
        {
            totalresults = 0;
            List<Application> lstApp = new List<Application>();

            totalresults = Convert.ToInt32(5);
            for (int iCounter = 0; iCounter < 5; iCounter++)
            {
                Application app = new Application();
                app.id = iCounter;
                app.name = "קניון האפליקציות";
                app.hebrewname = "";
                app.name = (app.hebrewname.Length > 0) ? app.hebrewname : app.name;
                app.icon = "http://wap.orange.co.il/MCM7portalImages//usr/share/mcm/mount1/197/29334/fil_5939334.gif";
                app.description = "גישה ישירה לקניון האפליקציות באמצעות כפתור ייעודי נוח לשימוש אשר יופיע בקטגוריית היישומים שעל גבי מכשירך. בהתאם למכשירך, ניתן להעבירו למסך הראשי או ליצור לו קיצור דרך. * לאחר הורדת האפליקציה ניתן לזהותה באמצעות אייקון המציג שקית קניות כתומה * האפליקציה הינה קישור המוביל לעמוד הסלולרי של הקניון במכשירך * האפליקציה מותאמת לכל הגילאים עכשיו קל לגשת לקניון ולמצוא את האפליקציה הנחוצה לך";
                app.shortdescription = "גישה ישירה לקניון האפליקציות באמצעות כפתור ייעודי נוח לשימוש";
                app.shortdescription = FillShortDesciption(app.shortdescription, app.description);

                app.parentid = 0;
                app.creator = string.Empty;
                app.numberofcomments = 0;

                app.price = "0";

                app.ismonthly = 0;
                app.AppType = new string[0];
                //app.rating = Convert.ToDouble(node.SelectSingleNode("rating").InnerText);

                lstApp.Add(app);
            }
                
            return lstApp;
        }

        public Category GetCategoryByID(int iCategoryID)
        {

            Category cat= new Category();
            cat.id = iCategoryID;
            cat.name = "פופולרים";
            cat.parentid=0;
            return cat;
        }
        

        public List<Category> GetSubCategoriesByID(int iCategoryID)
        {
            String sUrl = string.Format(@"http://ws.btree.co.il/wsreq/OAppStore/Categories/getSubcategories?categoryId={0}&onlyVisible=0&onlyWap=1", iCategoryID);
            XmlDocument xDoc = new XmlDocument() ;// = GetXmlFromJson(sUrl);
            xDoc.LoadXml("<items><items><id>35</id><name>קסמים והפתעות</name><parentid>25</parentid><order /><segment>0</segment><visible>1</visible><iswap>1</iswap><totalresults>3</totalresults></items><items><id>36</id><name>שגע חברים</name><parentid>25</parentid><order /><segment>0</segment><visible>1</visible><iswap>1</iswap><totalresults>3</totalresults></items><items><id>37</id><name>הפחדות</name><parentid>25</parentid><order /><segment>0</segment><visible>1</visible><iswap>1</iswap><totalresults>3</totalresults></items></items>");
            List<Category> catList = new List<Category>();

            XmlNodeList nodesList = xDoc.SelectNodes("items/items");
            foreach (XmlNode node in nodesList)
            {
                Category cat = new Category();
                cat.id = Convert.ToInt32(node.SelectSingleNode("id").InnerText);
                cat.name = node.SelectSingleNode("name").InnerText;
                Int32.TryParse(node.SelectSingleNode("parentid").InnerText, out cat.parentid);

                catList.Add(cat);
            }
            return catList;
        }

        public Application GetAppByID(int iAppID)
        {
            XmlDocument xDoc = new XmlDocument();
            xDoc.LoadXml("<items><items><id>139</id><timestamp>2010-08-25 19:34:12</timestamp><name>Facebook Chat</name><hebrewname></hebrewname><icon>http://wap.orange.co.il/MCM7portalImages//usr/share/mcm/mount1/184/11525/fil_5531525.gif</icon><description>מהיום ניתן לשוחח עם החברים שלך מהפייסבוק גם כשאתה לא בבית. אפליקציה סלולרית לשיחות בין חברים תאפשר לך להיות תמיד זמין ולהשיב לשיחות של החברים.</description><shortdescription>פייסבוק צ'אט על המכשיר הסלולרי שלך</shortdescription><parentid>0</parentid><author></author><totalresults>1</totalresults><categories><id>5</id><name>תקשורת</name><parentid /><order>8</order><segment>1</segment><visible>1</visible><totalresults>1</totalresults><ismaincategory>0</ismaincategory></categories><categories><id>29</id><name>למתקדמים</name><parentid /><order>18</order><segment>1</segment><visible>1</visible><totalresults>1</totalresults><ismaincategory>1</ismaincategory></categories><tags /><numberofcomments>0</numberofcomments><price><id>3515</id><applicationid>139</applicationid><timestamp>2010-10-25 16:44:54</timestamp><price>14.84</price><iscurrentprice>1</iscurrentprice><ismonthly>0</ismonthly><totalresults>0</totalresults></price><rating>0</rating><pins><id>139</id><applicationid>139</applicationid><type>orange</type><totalresults>0</totalresults></pins></items></items>");

            Application app = new Application();
            try
            {
                app.id = Convert.ToInt32(xDoc.SelectSingleNode("items/items/id").InnerText);
                app.name = xDoc.SelectSingleNode("items/items/name").InnerText;
                app.hebrewname = xDoc.SelectSingleNode("items/items/hebrewname").InnerText;
                app.name = (app.hebrewname.Length>0)?app.hebrewname:app.name;
                app.icon = xDoc.SelectSingleNode("items/items/icon").InnerText;
                app.description = xDoc.SelectSingleNode("items/items/description").InnerText;
                app.shortdescription = xDoc.SelectSingleNode("items/items/shortdescription").InnerText;
                app.shortdescription = FillShortDesciption4ItemPage(app.shortdescription, app.description);

                Int32.TryParse(xDoc.SelectSingleNode("items/items/parentid").InnerText, out app.parentid);
                try
                {
                    app.creator = xDoc.SelectSingleNode("items/items/creator").InnerText;
                }
                catch { }
                app.numberofcomments = Convert.ToInt32(xDoc.SelectSingleNode("items/items/numberofcomments").InnerText);
                try
                {
                    app.price = xDoc.SelectSingleNode("items/items/price/price").InnerText;
                }
                catch { }

                try
                {
                    app.ismonthly = Convert.ToInt32(xDoc.SelectSingleNode("items/items/price/ismonthly").InnerText);
                }
                catch { app.ismonthly = 0; }

                app.rating = Convert.ToDouble(xDoc.SelectSingleNode("items/items/rating").InnerText);

                try
                {
                    app._category = new Category();

                    app._category.id = Convert.ToInt32(xDoc.SelectSingleNode("items/items/categories/id").InnerText);
                    app._category.name = xDoc.SelectSingleNode("items/items/categories/name").InnerText;
                    Int32.TryParse(xDoc.SelectSingleNode("items/items/categories/parentid").InnerText, out app._category.parentid);
                }
                catch { }

                try
                {
                    XmlNodeList PinsList = xDoc.SelectNodes("items/items/pins/type");
                    app.AppType = new string[PinsList.Count];
                    for (int iCount = 0; iCount < PinsList.Count; iCount++)
                    {
                        app.AppType[iCount] = PinsList[iCount].InnerText;
                    }
                    //app.AppType = node.SelectSingleNode("pins/type").InnerText;
                }
                catch
                {
                    app.AppType = new string[0];
                }
            }
            catch { }
            return app;
        }

        private String FillShortDesciption(String sShortSescription, String sDescription)
        {
            if (String.IsNullOrEmpty(sShortSescription))
            {
                if (sDescription.Length > 100)
                    sShortSescription = sDescription.Substring(0, 100) + "...";
                else
                    sShortSescription = sDescription;
            }
            else
            {
                if (sShortSescription.Trim().Length == 0 && sDescription.Length>100)
                    sShortSescription = sDescription.Substring(0, 100) + "...";  
            }

            if (sShortSescription.Length > 60)
                sShortSescription = sShortSescription.Substring(0, 60) + "...";

            return sShortSescription;
        }

        private String FillShortDesciption4ItemPage(String sShortSescription, String sDescription)
        {
            if (String.IsNullOrEmpty(sShortSescription))
            {
                if (sDescription.Length > 100)
                    sShortSescription = sDescription.Substring(0, 100) + "...";
                else
                    sShortSescription = sDescription;
            }
            else
            {
                if (sShortSescription.Trim().Length == 0)
                    sShortSescription = sDescription.Substring(0, 100) + "...";  
            }

            return sShortSescription;
        }



        public List<Picture> GetPicturesByAppID(int iAppID)
        {
            List<Picture> pics = new List<Picture>();

            XmlDocument xDoc = new XmlDocument();
			xDoc.LoadXml("<items><items><images><id>146</id><applicationid>139</applicationid><image>Images/placeholders/carousel/1.jpg</image><ismainimage>1</ismainimage><totalresults>3</totalresults></images><images><id>147</id><applicationid>139</applicationid><image>Images/placeholders/carousel/2.jpg</image><ismainimage>0</ismainimage><totalresults>3</totalresults></images><images><id>148</id><applicationid>139</applicationid><image>Images/placeholders/carousel/3.jpg</image><ismainimage>0</ismainimage><totalresults>3</totalresults></images><video>false</video></items></items>");

            XmlNodeList xNodes = xDoc.SelectNodes("//images");
            foreach (XmlNode xItem in xNodes)
            {
                try
                {
                    Picture pic = new Picture();
                    pic.id = Convert.ToInt32(xItem.SelectSingleNode("id").InnerText);
                    pic.applicationid = Convert.ToInt32(xItem.SelectSingleNode("applicationid").InnerText);
                    pic.image = xItem.SelectSingleNode("image").InnerText;
                    pic.ismainimage = Convert.ToInt32(xItem.SelectSingleNode("ismainimage").InnerText);
                    pic.totalresults = Convert.ToInt32(xItem.SelectSingleNode("totalresults").InnerText);

                    pics.Add(pic);
                }
                catch { }
            }
            return pics;
        }


        public List<Application> GetSimilarApplications(int iAppID)
        {
            List<Application> lstApp = new List<Application>();
            for (int iCounter = 0; iCounter < 3; iCounter++)
            {
                Application app = new Application();
                app.id = iCounter;
                app.name = "קניון האפליקציות";
                app.hebrewname = "";
                app.name = (app.hebrewname.Length > 0) ? app.hebrewname : app.name;
                app.icon = "http://wap.orange.co.il/MCM7portalImages//usr/share/mcm/mount1/197/29334/fil_5939334.gif";
                app.description = "גישה ישירה לקניון האפליקציות באמצעות כפתור ייעודי נוח לשימוש אשר יופיע בקטגוריית היישומים שעל גבי מכשירך. בהתאם למכשירך, ניתן להעבירו למסך הראשי או ליצור לו קיצור דרך. * לאחר הורדת האפליקציה ניתן לזהותה באמצעות אייקון המציג שקית קניות כתומה * האפליקציה הינה קישור המוביל לעמוד הסלולרי של הקניון במכשירך * האפליקציה מותאמת לכל הגילאים עכשיו קל לגשת לקניון ולמצוא את האפליקציה הנחוצה לך";
                app.shortdescription = "גישה ישירה לקניון האפליקציות באמצעות כפתור ייעודי נוח לשימוש";
                app.shortdescription = FillShortDesciption(app.shortdescription, app.description);

                app.parentid = 0;
                app.creator = string.Empty;
                app.numberofcomments = 0;

                app.price = "0";

                app.ismonthly = 0;
                app.AppType = new string[0];
                //app.rating = Convert.ToDouble(node.SelectSingleNode("rating").InnerText);

                lstApp.Add(app);
            }
            return lstApp;
        }

        #endregion

    }
}
